Electronic control units (ECUs) are used at a vehicle to carry out a number of vehicle functions. ECUs include microprocessors, memory devices, and peripherals and/or microcontrollers that can be programmed to carry out specific tasks at the vehicle, such as monitoring vehicle performance or controlling vehicle operation. For example, the vehicle can use ECUs at vehicle systems modules (VSMs) that are each dedicated to one or more vehicle functions. A body control module is one type of VSM that can control vehicle functions, such as door locking/unlocking, window opening/closing, or HVAC systems of the vehicle.
The ECUs—as well as other vehicle electronics—can communicate with each other over a communications bus (also called a vehicle bus) in a vehicle. The ECUs can receive instructions or messages over the vehicle bus. For instance, the body control module discussed above can receive messages via the vehicle bus to lock or unlock vehicle doors. However, in order to process these instructions each ECU may first be granted permission to do so. The vehicle can maintain a database that includes an ECU identity representing each ECU in the vehicle and the messages that the ECU is authorized to receive. The database can permit or deny the ability of the ECU to process messages received over the vehicle bus. The database is usually stored at the vehicle when the vehicle is manufactured. Therefore, the permissions attributed to each ECU may be fixed at that time without providing an mechanism to change those permissions. However, it may be helpful if the permissions could be changed after the vehicle has been manufactured.